﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using EntGuayasSLA.BL.Listas;
using Ext.Net;

namespace EGuayas.Web.Expedientes
{
    public partial class wucCatProyectosMAE : ucWuc
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            try{
            if (!X.IsAjaxRequest)
            {


                Node root = this.CreateNode(null, null);
                root.AllowDrag = false;
                root.Expanded = true;
                trpCatalogo.Root.Add(root);
                winCatalogoPMAE.Show();
            }
            }
            catch (Exception ex)
            {
                RegistrarLog(ex);
            }
        }

        protected void btnBuscar(object sender, DirectEventArgs e)
        {
            try{
            }
            catch (Exception ex)
            {
                RegistrarLog(ex);
            }
        }

        public void Mostrar()
        {
            try{
            winCatalogoPMAE.Show();
            }
            catch (Exception ex)
            {
                RegistrarLog(ex);
            }
        }

        //static node creation with children
        private Node CreateNode(CategoriaMAEInfo categoria, ItemCategoriaMAEInfo itemCategoria)
        {   
            Node treeNode = new Node();
            try
            {
            ItemCategoriaMAELista itemCategorias = null;
            CategoriaMAELista SubCategorias = null;
      
            if (categoria == null && itemCategoria == null)
            {
                treeNode.NodeID = Guid.NewGuid().ToString();
                treeNode.Text = "Catalogo de Proyectos MAE";
                treeNode.Qtip = "Catalogo de Proyectos MAE";
                SubCategorias = CategoriaMAELista.GetCategoriaMAELista();
            }
            if (categoria != null)
            {
                treeNode.NodeID = categoria.Id.ToString();
                treeNode.Text = categoria.Codigo + " - " + categoria.Descripcion;
               // treeNode.Qtip = categoria.Descripcion;
                SubCategorias = categoria.SubCategorias;
            }
            if (itemCategoria != null)
            {
                treeNode.NodeID = itemCategoria.Id.ToString();
                treeNode.Text = itemCategoria.Codigo + " - " + itemCategoria.Descripcion;
                treeNode.Qtip = itemCategoria.Descripcion;
            }
            if (SubCategorias != null && SubCategorias.Count > 0)
            {
                foreach (var subCategoria in SubCategorias)
                {
                    
                    var nodoSup = this.CreateNode(subCategoria, null);
                    itemCategorias = subCategoria.ItemsCategorias;
                    if (itemCategorias != null && itemCategorias.Count > 0)
                    {
                        foreach (var itmCategoria in itemCategorias)
                        {
                            Node treeNodeItm = new Node();
                            treeNodeItm.Leaf = true;
                            treeNodeItm.NodeID = itmCategoria.Id.ToString();
                            treeNodeItm.Text = itmCategoria.Codigo + " - " + itmCategoria.Descripcion;
                            treeNodeItm.Qtip = itmCategoria.Codigo;
                           // treeNodeItm.Qtitle = itemCategoria.Orden.ToString();
                            nodoSup.Children.Add(treeNodeItm);
                        }
                        
                    }
                    treeNode.Children.Add(nodoSup);
                }
                
            }
            else
            {
               
                
            }
            }
            catch (Exception ex)
            {
                RegistrarLog(ex);
            }

            return treeNode;
        }
    }
}